package com.shujia.scala

import java.lang.reflect.Method
import java.util

object Demo36Class {

  def main(args: Array[String]): Unit = {

    /**
      * 反射
      *
      * 可以通过类对象获取类的方法，构造函数，属性
      * 可以通过获取到的构造函数创建这个类的对象
      *
      *
      * 类对象： 一个class文件再内存中的存在形式， 是CLass这个类的对象
      *
      *
      * 类的对象： 通过new创建的类的对象
      */


    /**
      * 再scala中获取类对象的方式
      *
      */

    //通过类名获取类对象
    val clazz: Class[_] = Class.forName("java.util.ArrayList")

    //通过类获取
    val clazz1: Class[String] = classOf[String]

    val str: String = "java"

    //通过类的对象获取类对象
    val clazz2: Class[_ <: String] = str.getClass





  }

}
